#!/bin/bash

# 脚本的错误处理
set -e

# 定义一些变量
HELM_REPO_NAME="bitnami"
HELM_REPO="https://charts.bitnami.com/bitnami"
REDIS_RELEASE_NAME="architecture-station-redis"
NAMESPACE="architecture-station"

# 检查 Helm 是否已安装
if ! command -v helm &> /dev/null
then
    echo "Helm 未安装。请先安装 Helm。"
    exit 1
fi


# 检查 Redis 是否已运行
if helm status $REDIS_RELEASE_NAME -n $NAMESPACE &> /dev/null; then
    echo "Redis 已经在命名空间 $NAMESPACE 中运行。"
    exit 0
fi

# 添加 Helm 仓库
if helm repo list | grep -q "^$HELM_REPO_NAME"; then
  echo "Helm 仓库 $HELM_REPO_NAME 已经存在，跳过添加。"
else
  echo "添加 Helm 仓库 $HELM_REPO_NAME。"
  helm repo add $HELM_REPO_NAME $HELM_REPO
#  helm repo update
fi

# 创建命名空间（如果不存在）
kubectl get namespace $NAMESPACE &> /dev/null || kubectl create namespace $NAMESPACE

# 使用 Helm 部署 Redis
helm install $REDIS_RELEASE_NAME $HELM_REPO_NAME/redis \
  --namespace $NAMESPACE \
  --set auth.enabled=false \
  --set master.persistence.enabled=true \
  --set master.persistence.size=1Gi \
  --set replica.persistence.enabled=true \
  --set replica.persistence.size=1Gi

echo "Redis 部署成功在命名空间 $NAMESPACE 中。"
